// User Profile Types

export interface Wallet {
  id: number;
  memberId: number;
  type: number;
  typeString: string;
  balance: string;
  freeze: string;
  createdAt: number;
  updatedAt: number;
}

export interface Grade {
  createdAt: number;
  updatedAt: number;
  createdAtString: string;
  updatedAtString: string;
  id: number;
  name: string;
  introduction: string;
  price: string;
  minRechargeAmount: string;
  level: number;
  sort: number;
  cardNum: number;
  openCardFee: string;
  serviceRate: string;
  usdRechargeRate: string;
  usdtRechargeRate: string;
  withdrawRate: string;
  status: number;
  cycle: number;
}

export interface CardHolder {
  createdAt: number;
  updatedAt: number;
  createdAtString: string;
  updatedAtString: string;
  id: number;
  memberId: number;
  email: string;
  firstName: string;
  lastName: string;
  countryCode: string;
  phoneNumber: string;
  city: string;
  country: string;
  line1: string;
  postalCode: string;
  state: string;
  line2: string;
  udpayCardholderId: string;
  udpayCardholderStatus: string;
}

export interface LoginLogs {
  createdAt: number;
  createdAtString: string;
  id: number;
  ip: string;
  memberId: number;
  updatedAt: number;
  updatedAtString: string;
}

export interface MemberInfo {
  account: string;
  avatar: string;
  cardHolders: CardHolder;
  createdAtString: string;
  email: string;
  grade: Grade;
  lastIp: string;
  lastTime: number;
  lastTimeString: string;
  loginLogs: LoginLogs[] | null;
  uniqueUuid: string;
  wallets: Wallet[] | null;
}

export interface UpdateEmailRequest {
  newEmail: string;
  verificationCode: string;
}

export interface UpdatePasswordRequest {
  oldPassword: string;
  newPassword: string;
  confirmPassword: string;
  verificationCode: string;
}

export interface UpdateFundPasswordRequest {
  fundPassword: string;
  confirmPassword: string;
  verificationCode: string;
}
